
#ifndef _NOEUD_H_
#define _NOEUD_H_

#include "list.h"

struct s_Noeud
{
    List successeurs;
    List predecesseurs;
    char* element;
} typedef Noeud;

struct s_Arc
{
    Noeud* successeur;
    Noeud* predecesseur;
    int cost;
} typedef Arc;

/*Noeud*/

void noeud_create(Noeud** value, const char *element);
void noeud_initialize(Noeud* value, const char *element);
void noeud_destroy(Noeud** value);
void noeud_clear(Noeud* value);
int noeud_equals(const Noeud* value, const Noeud* operande);
void noeud_copy(const Noeud* value, Noeud* ret);
int noeud_addSuccessor(Noeud* noeud, Noeud* successor, int cost);
int noeud_removePredecessor(Noeud* noeud, Noeud* predecessor, int cost);
int noeud_removeSuccessor(Noeud* noeud, Noeud* successor, int cost);

Object _object_Noeud;

Object *object_getNoeud();
void _noeud_toString(const void* value, int fd);
int _noeud_equals(const void* value, const void* operande);
int _noeud_copy(const void* value, void* ret);
int _noeud_create(void** value, void* args);
int _noeud_initialize(void* value, void* args);
void _noeud_destroy(void** value);
void _noeud_clear(void* value);

#endif

